package main

import (
	"fmt"
)

var choice int

// 结构体
type student struct {
	id   int
	name string
}
type studentMgr struct {
	allStudents map[int]student
}

func showMenu() {
	fmt.Println("欢迎登录管理系统，以下为具体选项")
	fmt.Println(`
		1. 查看学生信息
		2. 添加学生信息
		3. 更新学生信息
		4. 删除学生信息
		5. 退出`)
	fmt.Println("请输入具体操作：")
}

// 查看
func (s studentMgr) showStudents() {
	for _, v := range s.allStudents {
		fmt.Printf("id: %d 姓名：%s\n", v.id, v.name)
	}
}

// 添加
func (s studentMgr) addStudent() {
	var (
		id   int
		name string
	)
	// 获取输入
	fmt.Println("请输入id：")
	fmt.Scanln(&id)
	fmt.Println("请输入姓名：")
	fmt.Scanln(&name)
	// 暂存用户输入到结构体
	newStu := student{id, name}
	// 追加
	s.allStudents[id] = newStu
}

//更新
func (s studentMgr) updataStudent() {
	var (
		id int
	)
	fmt.Print("请输入你要更新的学生id:")
	fmt.Scanln(&id)
	for _, v := range s.allStudents {
		if v.id == id {
			fmt.Printf("id: %d 姓名：%s\n", v.id, v.name)
			s.addStudent()
			break
		}
	}
	fmt.Println("查无此id")
}

// 删除
func (s studentMgr) deleteStudent() {
	var (
		id int
	)
	fmt.Print("请输入你要删除的学生id:")
	fmt.Scanln(&id)
	for k, v := range s.allStudents {
		if v.id == id {
			fmt.Printf("k: %v\n", k)
			delete(s.allStudents, k)
			break
		}
	}
}

func main() {
	smr := studentMgr{
		allStudents: make(map[int]student, 10),
	}

	for {
		showMenu()
		// 获取输入
		fmt.Scanln(&choice)
		// fmt.Println("你输入的是:", choice)
		switch choice {
		case 1:
			smr.showStudents()
		case 2:
			smr.addStudent()
		case 3:
			smr.updataStudent()
		case 4:
			smr.deleteStudent()
		case 5:
		default:
		}
	}
}
